package org.easy.excel.support.parse;

import org.easy.excel.support.parse.source.ExcelTopLabelSource;
import org.easy.excel.support.parse.source.ExportLabelSource;

import java.util.List;

/**
 * 支持对注解进行解析的 {@link ExcelSourceParse} 接口
 *
 * @author 李坤
 * @date 2022/6/8 23:03
 */
public interface AnnotationExcelSourceParse extends ExcelSourceParse {

    /**
     * 获取给定实体类上标注的 {@link org.easy.excel.support.annotations.ExportTopLabel}
     * 注解解析后的 {@link ExcelTopLabelSource} 数据
     *
     * @param clazz 给定的实体类类型
     *
     * @return 解析后的 {@link ExcelTopLabelSource} 数据
     */
    ExcelTopLabelSource getExcelTopTitle(Class<?> clazz);

    /**
     * 获取给定实体类字段上标注的 {@link org.easy.excel.support.annotations.ExportLabel}
     * 注解解析后的 {@link ExportLabelSource} 数据
     *
     * @param clazz 给定的实体类
     *
     * @return 解析后的 {@link ExportLabelSource} 数据
     */
    List<ExportLabelSource> getAnnotationExcelSourceList(Class<?> clazz);

}
